package model;

public class Student extends User {
    private String clazz;   // 班级（学生特有属性）

    // 构造方法：调用父类构造器初始化共同属性，再初始化子类特有属性
    public Student(String id, String name, String password, String clazz) {
        super(id, name, password);
        this.clazz = clazz;
    }

    // 学生特有属性的Getter和Setter
    public String getClazz() {
        return clazz;
    }

    public void setClazz(String clazz) {
        this.clazz = clazz;
    }

    // 重写toString，包含班级信息
    @Override
    public String toString() {
        return super.toString() + "," + clazz;  // 复用父类的toString，追加班级
    }

    // 从字符串解析Student对象（适配新的格式）
    public static Student fromString(String data) {
        String[] parts = data.split(",");
        if (parts.length == 4) {  // 格式：id,name,password,clazz
            return new Student(parts[0], parts[1], parts[2], parts[3]);
        }
        return null;
    }

    // 复用父类的equals和hashCode（以id为唯一标识）
    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Student student = (Student) obj;
        return getId().equals(student.getId());  // 调用父类的getId()
    }

    @Override
    public int hashCode() {
        return getId().hashCode();  // 调用父类的getId()
    }
}